package jmcnet.libcommun.communs.validators
{
	import mx.utils.ObjectUtil;
	import mx.utils.StringUtil;
	import mx.validators.ValidationResult;
	import mx.validators.Validator;
 
	public class CompareStringValidator extends Validator {
		private var results:Array;
		
		public var valueCompare:Object;
		public var notEqualsErrorMsg:String;
		
		public function CompareStringValidator() {
			super();
		}
		
		protected override function doValidation(value:Object):Array {
			// Initialise le tableau des erreurs
            results = [];
 
            results = super.doValidation(value);        
 
			// Si le tableau contient au moins un Ã©lÃ©ment
			// nous le retournons
            if (results.length > 0)
                return results;
			
			
			var strValue:String = String(value);
			var compareStrValue:String = String(valueCompare);
			
			// Si ce n'est pas Ã©gale stringCompare nous retourne 0
			var result:int = ObjectUtil.stringCompare(strValue,compareStrValue);
			if(result) {
				var errorMessage:String = notEqualsErrorMsg; 
					//StringUtil.substitute("La valeur {0} n'est pas égale à la " +
 					//			"valeur {1}",strValue,compareStrValue);
					// Ici, nous construisons un evenement ValidationResult
					// pour l'ajouter au tableau
					results.push(new ValidationResult(true,null,
					      "Comparaison invalide",errorMessage));
			}
			
			// Nous retournons le tableau
			return results;
		}
	}

}